home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -in_the_mag- / reader_requests / notes / english / violinkey.rexx < prev   
OS/2 REXX Batch file  |  2000-02-23  |  35KB  |  1,206 lines

  1. /* subprogramm to notes.pprx */
  2.  
  3. signal on halt
  4. signal on break_c
  5. signal on break_e
  6. signal on break_d
  7. call ppm_SetStyle(N)
  8.  
  9. noteneingabe:
  10.     /* smallest note distance */
  11.     xgrdform = "(1,2,4,8 oder 16)"
  12.     xgrd = ppm_GetForm("Pleace choice the smallest note distance...(nothing=BREAK)", 3, xgrdform)
  13.     if xgrd == '' then exit_msg("user break !")
  14.     select
  15.      when xgrd == '1' then xg =0.7
  16.      when xgrd == '2' then xg =1.4
  17.      when xgrd == '4' then xg =2.8
  18.      when xgrd == '8' then xg =5.6
  19.      when xgrd == '16' then xg =11.2
  20.      otherwise notenwert()
  21.     end
  22.  
  23.    /* pointheighth of the notes */
  24.    notepkt = 26
  25.    call ppm_SetJustification(0)
  26.    
  27.    zz = 0   /* line counter */
  28.    notex = 0
  29.    notey = 0
  30.    page = ppm_CurrentPage()
  31.  
  32. clickpos:
  33.    res = ppm_GetUserText(2, "manual or align to box ? m/b")
  34.  
  35.    if res == 'M' then res = 'm'
  36.    if res == 'B' then res = 'b'
  37.  select
  38.    when res == 'm' then
  39.      do
  40.        clickpos = ppm_GetClickPosition("Please click on the place, where I shall begin ...")
  41.        if clickpos == 0 then
  42.            do
  43.            exit_msg("ERROR !! EXIT !!")
  44.            end
  45.        else
  46.            do
  47.            notey = word(clickpos, 2)
  48.            notex = word(clickpos, 1)
  49.            if notex < 2.5 then notex = 2.5
  50.            xw = notex
  51.            yw = notey
  52.              if notey <= 3.3  then zz= 0
  53.              if ((notey > 5.5)&(notey < 7.3)) then zz = 4
  54.              if ((notey > 9.5)&(notey < 11.3)) then zz = 8
  55.              if ((notey > 13.5)&(notey < 15.3)) then zz = 12
  56.              if ((notey > 17.5)&(notey < 19.3)) then zz = 16
  57.              if ((notey > 21.5)&(notey < 23.3)) then zz = 20
  58.            end
  59.  
  60.      end
  61.    when res == 'b' then
  62.      do
  63.         clickbox = ppm_ClickOnBox("Please click on a box, where I shall work away ...")
  64.         pos = ppm_GetBoxPosition(clickbox)
  65.         notex = word(pos, 1)
  66.         notey = word(pos, 2)
  67.         xw = notex
  68.         yw = notey
  69.         call ppm_BoxAtPosn(notex, notey, page)
  70.         if notey <= 3.3  then zz= 0
  71.         if ((notey > 5.5)&(notey < 9.3)) then zz = 4
  72.         if ((notey > 9.5)&(notey < 13.3)) then zz = 8
  73.         if ((notey > 13.5)&(notey < 17.3)) then zz = 12
  74.         if ((notey > 17.5)&(notey < 21.3)) then zz = 16
  75.         if ((notey > 21.5)&(notey < 25.3)) then zz = 20
  76.  
  77.         if notex <= 1 then
  78.         do
  79.           noteneingabe()
  80.         end
  81.      end
  82.    otherwise clickpos()
  83.  end
  84.  
  85.  
  86.    /* pointerbox */
  87.  
  88.    zbid = ppm_CreateBox(notex, zz+0.5, 0.3, 1, 0)
  89.    call ppm_SetSize(26)
  90.    zbn = ppm_GetBoxName(zbid)
  91.    call ppm_TextIntoBox(zbn, '5')
  92.  
  93.  
  94. notenwert:
  95.  
  96.    do forever
  97.            cr = '0a'x
  98.            form = "worth name ['n'at.]"
  99.            call ppm_SetBoxPosition(zbid, notex, zz+0.5)
  100.            call ppm_UpdateScreen()
  101.            eingabe = ppm_GetForm("Please type in below for the notes ... (nothing=break)", 7, form)
  102.            if eingabe = '' then
  103.            do
  104.             call ppm_DeleteBox(zbid)
  105.             exit_msg()
  106.            end
  107.            nw = word(eingabe, 1)
  108.            nn = word(eingabe, 2)
  109.            if nw == 'P' then nw = 'p'            /*pause*/
  110.            al = word(eingabe, 3)
  111.            if al == 'A' then al = 'a'            /*natural sign*/
  112.            IF nw == 'D' then nw = 'd'            /*delete*/
  113.            if nw == 'C' then nw = 'c'            /*space*/
  114.            if nw == 'L' then nw = 'l'            /*bar line*/
  115.            if nn == 'L' then nn = 'l'            /*bar line*/
  116.            if nw == "NEW" then nw = "new"        /*new pointer position*/
  117.  
  118.     /* x-distance of the notes */
  119.     select
  120.       when nw=='s' then
  121.           do
  122.           xw = xg/16
  123.           nw='x'
  124.           yv = 0
  125.           end
  126.       when nw=='S' then
  127.           do
  128.           xw = xg/16
  129.           nw='X'
  130.           yv = 0.47
  131.           end
  132.       when nw=='e' then
  133.           do
  134.           xw = xg/8
  135.           nw='e'
  136.           yv = 0
  137.           end
  138.       when nw=='E' then
  139.           do
  140.           xw = xg/8
  141.           nw='E'
  142.           yv = 0.47
  143.           end
  144.       when nw=='q' then
  145.           do
  146.           xw = xg/4
  147.           nw='q'
  148.           yv = 0
  149.           end
  150.       when nw=='Q' then
  151.           do
  152.           xw = xg/4
  153.           nw='Q'
  154.           yv = 0.47
  155.           end
  156.       when nw=='h' then
  157.           do
  158.           xw = xg/2
  159.           yv = 0
  160.           end
  161.       when nw=='H' then
  162.           do
  163.           xw = xg/2
  164.           yv = 0.47
  165.           end
  166.       when nw=='w' then
  167.           do
  168.           xw = xg
  169.           nw='w'
  170.           yv = 0
  171.           end
  172.       when nw=='W' then
  173.           do
  174.           xw = xg
  175.           nw='W'
  176.           yv = 0.47
  177.           end
  178.  
  179.  
  180.       when nw == 'pt' then
  181.           do
  182.             call ppm_SetSize(25)
  183.             box#id = ppm_CreateBox(notex-xw+0.4, yw+zz+0.26, 0.3, 0.9, 0)
  184.             call ppm_SetSize(20)
  185.             call ppm_TextIntoBox(box#id, 'd')
  186.            select
  187.                when nn == '1' then
  188.                do
  189.                xw = xg
  190.                notex = notex+xw
  191.                end
  192.                when nn == '2' then
  193.                do
  194.                xw = xg/2
  195.                notex = notex+xw
  196.                end
  197.                when nn == '4' then
  198.                do
  199.                xw = xg/4
  200.                notex = notex+xw
  201.                end
  202.                when nn == '8' then
  203.                do
  204.                xw = xg/8
  205.                notex = notex+xw
  206.                end
  207.                when nn == '16' then
  208.                do
  209.                xw  = xg/16
  210.                notex = notex+xw
  211.                end
  212.                when nn == 'l' then
  213.                do
  214.                xw  = 0.2
  215.                notex = notex+xw
  216.                end
  217.                otherwise notenwert()
  218.            end
  219.            if notex >=18.7 then
  220.                do
  221.                  notex = 2.5
  222.                  zz = zz + 4
  223.                end
  224.            px = notex - 4
  225.            py = zz-1
  226.            if px < 0 then px = 0
  227.            call ppm_SetPagePosition(px, py+2)
  228.            notenwert()
  229.           end
  230.  
  231.       when nw == 'PT' then
  232.           do
  233.             call ppm_SetSize(25)
  234.             box#id = ppm_CreateBox(notex-xw+0.4, yw+zz+0.25-yv, 0.3, 0.9, 0)
  235.             call ppm_SetSize(20)
  236.             call ppm_TextIntoBox(box#id, 'd')
  237.            select
  238.                when nn == '1' then
  239.                do
  240.                xw = xg
  241.                notex = notex+xw
  242.                end
  243.                when nn == '2' then
  244.                do
  245.                xw = xg/2
  246.                notex = notex+xw
  247.                end
  248.                when nn == '4' then
  249.                do
  250.                xw = xg/4
  251.                notex = notex+xw
  252.                end
  253.                when nn == '8' then
  254.                do
  255.                xw = xg/8
  256.                notex = notex+xw
  257.                end
  258.                when nn == '16' then
  259.                do
  260.                xw  = xg/16
  261.                notex = notex+xw
  262.                end
  263.                when nn == 'l' then
  264.                do
  265.                xw  = 0.2
  266.                notex = notex+xw
  267.                end
  268.                otherwise notenwert()
  269.            end
  270.            if notex >=18.7 then
  271.                do
  272.                  notex = 2.5
  273.                  zz = zz + 4
  274.                end
  275.            px = notex - 4
  276.            py = zz-1
  277.            if px < 0 then px = 0
  278.            call ppm_SetPagePosition(px, py+2)
  279.            notenwert()
  280.           end
  281.  
  282.      /* delete */
  283.       when nw == 'd' then
  284.           do
  285.            oldpos = notex
  286.            thisbox = ppm_BoxNum()
  287.            if thisbox == zbid then
  288.              do
  289.              ppm_Inform(1, "Nothing to delete!","OK")
  290.              notenwert()
  291.              end
  292.            lpos= ppm_GetBoxPosition()
  293.            notex = word(lpos, 1)
  294.            call ppm_DeleteBox()
  295.            diff = oldpos - notex
  296.            if diff<0 then notenwert()
  297.            if (diff < 0.3)&(diff > 0.1) then notex = notex + 0.23
  298.            py    = zz - 1
  299.            px = notex - 4
  300.            if px < 0 then px = 0
  301.            call ppm_SetPagePosition(px, py+2)
  302.            notenwert()
  303.           end
  304.  
  305.       /* barline */
  306.       when nw == 'l' then
  307.           do
  308.            call ppm_SetLineWeight(0.25)
  309.            call ppm_DrawLine(notex, 2+zz, notex, 2.8+zz)
  310.            notex = notex+0.2
  311.           end
  312.  
  313.      /* Pausen */
  314.       when nw == 'p' then
  315.         do
  316. pausenwert:
  317.            x = notex
  318.            select
  319.                when nn== '1' then do
  320.  
  321.                    y = 2.28+zz
  322.                    call ppm_SetLineWeight(4)
  323.                    call ppm_DrawLine(x, y, x+0.4, y)
  324.                    call ppm_SetLineWeight(0.25)
  325.                    xw = xg
  326.                    notex = notex+xw
  327.                end
  328.  
  329.                when nn== '2' then do
  330.  
  331.                    y = 2.32+zz
  332.                    call ppm_SetLineWeight(4)
  333.                    call ppm_DrawLine(x, y, x+0.4, y)
  334.                    call ppm_SetLineWeight(0.25)
  335.                    xw = xg/2
  336.                    notex = notex+xw
  337.                end
  338.  
  339.                when nn== '4' then do
  340.  
  341.                    y = 2.07+zz
  342.                    Pbox = ppm_CreateBox(x, y, 0.59, 0.86, 0)
  343.                    boxnm = ppm_DocNextBox(Pbox)
  344.                    call ppm_DeleteContents(boxnm)
  345.                    call ppm_ImportGraphic(boxnm, 'Genies:note_pause/quarterpause', pause)
  346.                    xw = xg/4
  347.                    notex = notex+xw
  348.                end
  349.  
  350.                when nn== '8' then do
  351.  
  352.                    y = 2.21+zz
  353.                    Pbox = ppm_CreateBox(x, y, 0.27, 0.42, 0)
  354.                    boxnm = ppm_DocNextBox(Pbox)
  355.                    call ppm_DeleteContents(boxnm)
  356.                    call ppm_ImportGraphic(boxnm, 'Genies:note_pause/eighthpause', pause)
  357.                    xw = xg/8
  358.                    notex = notex+xw
  359.                end
  360.  
  361.                when nn== '16' then do
  362.  
  363.                    y = 2.21+zz
  364.                    Pbox = ppm_CreateBox(x, y, 0.27, 0.42, 0)
  365.                    boxnm = ppm_DocNextBox(Pbox)
  366.                    call ppm_DeleteContents(boxnm)
  367.                    call ppm_ImportGraphic(boxnm, 'Genies:note_pause/sixteethpause', pause)
  368.                    xw = xg/16
  369.                    notex = notex+xw
  370.                end
  371.                otherwise notenwert()
  372.            end
  373.            if notex >=18.7 then
  374.                do
  375.                  notex = 2.5
  376.                  zz = zz + 4
  377.                end
  378.            px = notex - 4
  379.            py = zz-1
  380.            if px < 0 then px = 0
  381.            call ppm_SetPagePosition(px, py+2)
  382.            notenwert()
  383.         end
  384.  
  385.       when nw == 'c' then
  386.         do
  387.           select
  388.  
  389.            when nn== '1' then
  390.                do
  391.                xw = xg
  392.                notex = notex+xw
  393.                end
  394.            when nn== '2' then
  395.                do
  396.                xw = xg/2
  397.                notex = notex+xw
  398.                end
  399.            when nn== '4' then
  400.                do
  401.                xw = xg/4
  402.                notex = notex+xw
  403.                end
  404.            when nn== '8' then
  405.                do
  406.                xw = xg/8
  407.                notex = notex+xw
  408.                end
  409.            when nn== '16' then
  410.                do
  411.                xw = xg/16
  412.                notex = notex+xw
  413.                end
  414.            when nn == 'l' then
  415.                do
  416.                xw  = 0.2
  417.                notex = notex+xw
  418.                end
  419.            otherwise notenwert()
  420.           end
  421.            if notex >=18.7 then
  422.                do
  423.                  notex = 2.5
  424.                  zz = zz + 4
  425.                end
  426.            px = notex - 4
  427.            py = zz-1
  428.            if px < 0 then px = 0
  429.            call ppm_SetPagePosition(px, py+2)
  430.            notenwert()
  431.         end
  432.  
  433.       when nw == 'new' then
  434.         do
  435.            call ppm_DeleteBox(zbid)
  436.            clickpos()
  437.         end
  438.       otherwise notenwert()
  439.     end
  440.  
  441.  
  442.         /* y-place of the notes - noteneck to top */
  443.  
  444.         call ppm_SetLineWeight(0.25)
  445.  
  446.       select
  447.         when nn=='c5'  then
  448.         do
  449.             yw = 0.945
  450.             if al == 'n' then call auflhoch()
  451.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  452.             call ppm_DrawLine(notex, zz+1.6, (notex+0.4), zz+1.6)
  453.         end
  454.  
  455.         when nn=='b4'  then
  456.         do
  457.             yw = 1.045
  458.             if al == 'n' then call auflhoch()
  459.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  460.         end
  461.  
  462.         when nn=='bb4'  then
  463.         do
  464.             yw = 1.045
  465.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  466.         end
  467.  
  468.         when nn=='a#4' then
  469.         do
  470.             yw = 1.145
  471.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  472.             call ppm_SetSize(20)
  473.             call ppm_TextIntoBox(box#id, 's')
  474.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  475.         end
  476.  
  477.         when nn=='a4'  then
  478.         do
  479.             yw = 1.145
  480.             if al == 'n' then call auflhoch()
  481.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  482.         end
  483.  
  484.         when nn=='ab4' then
  485.         do
  486.             yw = 1.145
  487.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  488.             call ppm_SetSize(20)
  489.             call ppm_TextIntoBox(box#id, 'f')
  490.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  491.         end
  492.  
  493.         when nn=='g#4' then
  494.         do
  495.             yw = 1.245
  496.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  497.             call ppm_SetSize(20)
  498.             call ppm_TextIntoBox(box#id, 's')
  499.         end
  500.         when nn=='g4'  then
  501.         do
  502.             yw = 1.245
  503.             if al == 'n' then call auflhoch()
  504.         end
  505.         when nn=='gb4' then
  506.         do
  507.             yw = 1.245
  508.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  509.             call ppm_SetSize(20)
  510.             call ppm_TextIntoBox(box#id, 'f')
  511.         end
  512.         when nn=='f#4' then
  513.         do
  514.             yw = 1.345
  515.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  516.             call ppm_SetSize(20)
  517.             call ppm_TextIntoBox(box#id, 's')
  518.         end
  519.         when nn=='f4'  then
  520.         do
  521.             yw = 1.345
  522.             if al == 'n' then call auflhoch()
  523.         end
  524.         when nn=='e#4' then
  525.         do
  526.             yw = 1.445
  527.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  528.             call ppm_SetSize(20)
  529.             call ppm_TextIntoBox(box#id, 's')
  530.         end
  531.         when nn=='e4'  then
  532.         do
  533.             yw = 1.445
  534.             if al == 'n' then call auflhoch()
  535.         end
  536.         when nn=='eb4' then
  537.         do
  538.             yw = 1.445
  539.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  540.             call ppm_SetSize(20)
  541.             call ppm_TextIntoBox(box#id, 'f')
  542.         end
  543.         when nn=='d#4' then
  544.         do
  545.             yw = 1.545
  546.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  547.             call ppm_SetSize(20)
  548.             call ppm_TextIntoBox(box#id, 's')
  549.         end
  550.         when nn=='d4'  then
  551.         do
  552.             yw = 1.545
  553.             if al == 'n' then call auflhoch()
  554.         end
  555.         when nn=='db4' then
  556.         do
  557.             yw = 1.545
  558.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  559.             call ppm_SetSize(20)
  560.             call ppm_TextIntoBox(box#id, 'f')
  561.         end
  562.         when nn=='c#4' then
  563.         do
  564.             yw = 1.645
  565.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  566.             call ppm_SetSize(20)
  567.             call ppm_TextIntoBox(box#id, 's')
  568.         end
  569.         when nn=='c4'  then
  570.         do
  571.             yw = 1.645
  572.             if al == 'n' then call auflhoch()
  573.         end
  574.         when nn=='b3'  then
  575.         do
  576.             yw = 1.745
  577.             if al == 'n' then call auflhoch()
  578.         end
  579.         when nn=='bb3'  then
  580.         do
  581.             yw = 1.745
  582.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  583.             call ppm_SetSize(20)
  584.             call ppm_TextIntoBox(box#id, 'f')
  585.         end
  586.         when nn=='a#3' then
  587.         do
  588.             yw = 1.845
  589.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  590.             call ppm_SetSize(20)
  591.             call ppm_TextIntoBox(box#id, 's')
  592.         end
  593.         when nn=='a3'  then
  594.         do
  595.             yw = 1.845
  596.             if al == 'n' then call auflhoch()
  597.         end
  598.         when nn=='ab3' then
  599.         do
  600.             yw = 1.845
  601.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  602.             call ppm_SetSize(20)
  603.             call ppm_TextIntoBox(box#id, 'f')
  604.         end
  605.         when nn=='g#3' then
  606.         do
  607.             yw = 1.945
  608.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  609.             call ppm_SetSize(20)
  610.             call ppm_TextIntoBox(box#id, 's')
  611.         end
  612.         when nn=='g3'  then
  613.         do
  614.             yw = 1.945
  615.             if al == 'n' then call auflhoch()
  616.         end
  617.         when nn=='gb3' then
  618.         do
  619.             yw = 1.945
  620.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  621.             call ppm_SetSize(20)
  622.             call ppm_TextIntoBox(box#id, 'f')
  623.         end
  624.         when nn=='f#3' then
  625.         do
  626.             yw = 2.045
  627.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  628.             call ppm_SetSize(20)
  629.             call ppm_TextIntoBox(box#id, 's')
  630.         end
  631.         when nn=='f3'  then
  632.         do
  633.             yw = 2.045
  634.             if al == 'n' then call auflhoch()
  635.         end
  636.         when nn=='e#3' then
  637.         do
  638.             yw = 2.145
  639.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  640.             call ppm_SetSize(20)
  641.             call ppm_TextIntoBox(box#id, 's')
  642.         end
  643.         when nn=='e3'  then
  644.         do
  645.             yw = 2.145
  646.             if al == 'n' then call auflhoch()
  647.         end
  648.         when nn=='eb3' then
  649.         do
  650.             yw = 2.145
  651.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  652.             call ppm_SetSize(20)
  653.             call ppm_TextIntoBox(box#id, 'f')
  654.         end
  655.         when nn=='d#3' then
  656.         do
  657.             yw = 2.245
  658.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  659.             call ppm_SetSize(20)
  660.             call ppm_TextIntoBox(box#id, 's')
  661.         end
  662.         when nn=='d3'  then
  663.         do
  664.             yw = 2.245
  665.             if al == 'n' then call auflhoch()
  666.         end
  667.         when nn=='db3' then
  668.         do
  669.             yw = 2.245
  670.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  671.             call ppm_SetSize(20)
  672.             call ppm_TextIntoBox(box#id, 'f')
  673.         end
  674.  
  675.         when nn=='c#3' then
  676.         do
  677.             yw = 2.345
  678.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  679.             call ppm_SetSize(20)
  680.             call ppm_TextIntoBox(box#id, 's')
  681.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  682.         end
  683.  
  684.         when nn=='c3'  then
  685.         do
  686.             yw = 2.345
  687.             if al == 'n' then call auflhoch()
  688.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  689.         end
  690.  
  691.         when nn=='b2'  then
  692.         do
  693.             yw = 2.445
  694.             if al == 'n' then call auflhoch()
  695.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  696.         end
  697.  
  698.         when nn=='bb2'  then
  699.         do
  700.             yw = 2.445
  701.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  702.             call ppm_SetSize(20)
  703.             call ppm_TextIntoBox(box#id, 'f')
  704.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  705.         end
  706.  
  707.         when nn=='a#2' then
  708.         do
  709.             yw = 2.545
  710.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  711.             call ppm_SetSize(20)
  712.             call ppm_TextIntoBox(box#id, 's')
  713.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  714.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  715.         end
  716.  
  717.         when nn=='a2'  then
  718.         do
  719.             yw = 2.545
  720.             if al == 'n' then call auflhoch()
  721.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  722.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  723.         end
  724.  
  725.         when nn=='ab2'  then
  726.         do
  727.             yw = 2.545
  728.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  729.             call ppm_SetSize(20)
  730.             call ppm_TextIntoBox(box#id, 'f')
  731.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  732.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  733.         end
  734.  
  735.         when nn=='g#2'  then
  736.         do
  737.             yw = 2.645
  738.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  739.             call ppm_SetSize(20)
  740.             call ppm_TextIntoBox(box#id, 's')
  741.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  742.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  743.         end
  744.  
  745.         when nn=='g2'  then
  746.         do
  747.             yw = 2.645
  748.             if al == 'n' then call auflhoch()
  749.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  750.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  751.         end
  752.  
  753.  
  754.         when nn=='gb2'  then
  755.         do
  756.             yw = 2.645
  757.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  758.             call ppm_SetSize(20)
  759.             call ppm_TextIntoBox(box#id, 'f')
  760.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  761.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  762.         end
  763.  
  764.         when nn=='f#2'  then
  765.         do
  766.             yw = 2.745
  767.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  768.             call ppm_SetSize(20)
  769.             call ppm_TextIntoBox(box#id, 's')
  770.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  771.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  772.             call ppm_DrawLine(notex, zz+3.4, (notex+0.4), zz+3.4)
  773.         end
  774.  
  775.         when nn=='f2'  then
  776.         do
  777.             yw = 2.745
  778.             if al == 'n' then call auflhoch()
  779.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  780.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  781.             call ppm_DrawLine(notex, zz+3.4, (notex+0.4), zz+3.4)
  782.         end
  783.  
  784.         when nn=='e2'  then
  785.         do
  786.             yw = 2.845
  787.             if al == 'n' then call auflhoch()
  788.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  789.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  790.             call ppm_DrawLine(notex, zz+3.4, (notex+0.4), zz+3.4)
  791.         end
  792.  
  793.  
  794.     /* y-Raster der Noten - Notenhälse nach unten */
  795.  
  796.         when nn=='C5'  then
  797.         do
  798.             yw = 1.42
  799.             if al == 'n' then call aufltief()
  800.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  801.             call ppm_DrawLine(notex, zz+1.6, (notex+0.4), zz+1.6)
  802.         end
  803.  
  804.         when nn=='B4'  then
  805.         do
  806.             yw = 1.52
  807.             if al == 'n' then call aufltief()
  808.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  809.         end
  810.  
  811.         when nn=='Bb4'  then
  812.         do
  813.             yw = 1.52
  814.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  815.             call ppm_SetSize(20)
  816.             call ppm_TextIntoBox(box#id, 'f')
  817.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  818.         end
  819.  
  820.         when nn=='A#4' then
  821.         do
  822.             yw = 1.62
  823.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  824.             call ppm_SetSize(20)
  825.             call ppm_TextIntoBox(box#id, 's')
  826.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  827.         end
  828.  
  829.         when nn=='A4'  then
  830.         do
  831.             yw = 1.62
  832.             if al == 'n' then call aufltief()
  833.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  834.         end
  835.  
  836.         when nn=='Ab4' then
  837.         do
  838.             yw = 1.62
  839.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  840.             call ppm_SetSize(20)
  841.             call ppm_TextIntoBox(box#id, 'f')
  842.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  843.         end
  844.  
  845.         when nn=='G#4' then
  846.         do
  847.             yw = 1.72
  848.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  849.             call ppm_SetSize(20)
  850.             call ppm_TextIntoBox(box#id, 's')
  851.         end
  852.         when nn=='G4'  then
  853.         do
  854.             yw = 1.72
  855.             if al == 'n' then call aufltief()
  856.         end
  857.         when nn=='Gb4' then
  858.         do
  859.             yw = 1.72
  860.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  861.             call ppm_SetSize(20)
  862.             call ppm_TextIntoBox(box#id, 'f')
  863.         end
  864.         when nn=='F#4' then
  865.         do
  866.             yw = 1.82
  867.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  868.             call ppm_SetSize(20)
  869.             call ppm_TextIntoBox(box#id, 's')
  870.         end
  871.         when nn=='F4'  then
  872.         do
  873.             yw = 1.82
  874.             if al == 'n' then call aufltief()
  875.         end
  876.         when nn=='E#4' then
  877.         do
  878.             yw = 1.92
  879.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  880.             call ppm_SetSize(20)
  881.             call ppm_TextIntoBox(box#id, 's')
  882.         end
  883.         when nn=='E4'  then
  884.         do
  885.             yw = 1.92
  886.             if al == 'n' then call aufltief()
  887.         end
  888.         when nn=='Eb4' then
  889.         do
  890.             yw = 1.92
  891.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  892.             call ppm_SetSize(20)
  893.             call ppm_TextIntoBox(box#id, 'f')
  894.         end
  895.         when nn=='D#4' then
  896.         do
  897.             yw = 2.02
  898.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  899.             call ppm_SetSize(20)
  900.             call ppm_TextIntoBox(box#id, 's')
  901.         end
  902.         when nn=='D4'  then
  903.         do
  904.             yw = 2.02
  905.             if al == 'n' then call aufltief()
  906.         end
  907.         when nn=='Db4' then
  908.         do
  909.             yw = 2.02
  910.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  911.             call ppm_SetSize(20)
  912.             call ppm_TextIntoBox(box#id, 'f')
  913.         end
  914.         when nn=='C#4' then
  915.         do
  916.             yw = 2.12
  917.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  918.             call ppm_SetSize(20)
  919.             call ppm_TextIntoBox(box#id, 's')
  920.         end
  921.         when nn=='C4'  then
  922.         do
  923.             yw = 2.12
  924.             if al == 'n' then call aufltief()
  925.         end
  926.         when nn=='B3'  then
  927.         do
  928.             yw = 2.22
  929.             if al == 'n' then call aufltief()
  930.         end
  931.         when nn=='Bb3'  then
  932.         do
  933.             yw = 2.22
  934.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  935.             call ppm_SetSize(20)
  936.             call ppm_TextIntoBox(box#id, 'f')
  937.         end
  938.         when nn=='A#3' then
  939.         do
  940.             yw = 2.32
  941.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  942.             call ppm_SetSize(20)
  943.             call ppm_TextIntoBox(box#id, 's')
  944.         end
  945.         when nn=='A3'  then
  946.         do
  947.             yw = 2.32
  948.             if al == 'n' then call aufltief()
  949.         end
  950.         when nn=='Ab3' then
  951.         do
  952.             yw = 2.32
  953.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  954.             call ppm_SetSize(20)
  955.             call ppm_TextIntoBox(box#id, 'f')
  956.         end
  957.         when nn=='G#3' then
  958.         do
  959.             yw = 2.42
  960.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  961.             call ppm_SetSize(20)
  962.             call ppm_TextIntoBox(box#id, 's')
  963.         end
  964.         when nn=='G3'  then
  965.         do
  966.             yw = 2.42
  967.             if al == 'n' then call aufltief()
  968.         end
  969.         when nn=='Gb3' then
  970.         do
  971.             yw = 2.42
  972.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  973.             call ppm_SetSize(20)
  974.             call ppm_TextIntoBox(box#id, 'f')
  975.         end
  976.         when nn=='F#3' then
  977.         do
  978.             yw = 2.52
  979.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  980.             call ppm_SetSize(20)
  981.             call ppm_TextIntoBox(box#id, 's')
  982.         end
  983.         when nn=='F3'  then
  984.         do
  985.             yw = 2.52
  986.             if al == 'n' then call aufltief()
  987.         end
  988.         when nn=='E#3' then
  989.         do
  990.             yw = 2.62
  991.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  992.             call ppm_SetSize(20)
  993.             call ppm_TextIntoBox(box#id, 's')
  994.         end
  995.         when nn=='E3'  then
  996.         do
  997.             yw = 2.62
  998.             if al == 'n' then call aufltief()
  999.         end
  1000.         when nn=='Eb3' then
  1001.         do
  1002.             yw = 2.62
  1003.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  1004.             call ppm_SetSize(20)
  1005.             call ppm_TextIntoBox(box#id, 'f')
  1006.         end
  1007.         when nn=='D#3' then
  1008.         do
  1009.             yw = 2.72
  1010.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  1011.             call ppm_SetSize(20)
  1012.             call ppm_TextIntoBox(box#id, 's')
  1013.         end
  1014.         when nn=='D3'  then
  1015.         do
  1016.             yw = 2.72
  1017.             if al == 'n' then call aufltief()
  1018.         end
  1019.         when nn=='Db3' then
  1020.         do
  1021.             yw = 2.72
  1022.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  1023.             call ppm_SetSize(20)
  1024.             call ppm_TextIntoBox(box#id, 'f')
  1025.         end
  1026.  
  1027.         when nn=='C#3' then
  1028.         do
  1029.             yw = 2.82
  1030.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  1031.             call ppm_SetSize(20)
  1032.             call ppm_TextIntoBox(box#id, 's')
  1033.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1034.         end
  1035.  
  1036.         when nn=='C3'  then
  1037.         do
  1038.             yw = 2.82
  1039.             if al == 'n' then call aufltief()
  1040.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1041.         end
  1042.  
  1043.         when nn=='B2'  then
  1044.         do
  1045.             yw = 2.92
  1046.             if al == 'n' then call aufltief()
  1047.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1048.         end
  1049.  
  1050.         when nn=='Bb2'  then
  1051.         do
  1052.             yw = 2.92
  1053.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  1054.             call ppm_SetSize(20)
  1055.             call ppm_TextIntoBox(box#id, 'f')
  1056.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1057.         end
  1058.  
  1059.         when nn=='A#2' then
  1060.         do
  1061.             yw = 3.02
  1062.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  1063.             call ppm_SetSize(20)
  1064.             call ppm_TextIntoBox(box#id, 's')
  1065.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1066.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  1067.         end
  1068.  
  1069.         when nn=='A2'  then
  1070.         do
  1071.           yw = 3.02
  1072.             if al == 'n' then call aufltief()
  1073.           call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1074.           call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  1075.         end
  1076.  
  1077.         when nn=='Ab2'  then
  1078.         do
  1079.           yw = 3.02
  1080.           box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  1081.           call ppm_SetSize(20)
  1082.           call ppm_TextIntoBox(box#id, 'f')
  1083.           call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1084.           call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  1085.         end
  1086.  
  1087.         when nn=='G#2'  then
  1088.         do
  1089.             yw = 3.12
  1090.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  1091.             call ppm_SetSize(20)
  1092.             call ppm_TextIntoBox(box#id, 's')
  1093.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1094.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  1095.         end
  1096.  
  1097.         when nn=='G2'  then
  1098.         do
  1099.           yw = 3.12
  1100.             if al == 'n' then call aufltief()
  1101.           call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1102.           call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  1103.         end
  1104.  
  1105.         when nn=='Gb2'  then
  1106.         do
  1107.           yw = 3.12
  1108.           box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  1109.           call ppm_SetSize(20)
  1110.           call ppm_TextIntoBox(box#id, 'f')
  1111.           call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1112.           call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  1113.         end
  1114.  
  1115.         when nn=='F#2'  then
  1116.         do
  1117.           yw = 3.22
  1118.           box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  1119.           call ppm_SetSize(20)
  1120.           call ppm_TextIntoBox(box#id, 's')
  1121.           call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1122.           call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  1123.           call ppm_DrawLine(notex, zz+3.4, (notex+0.4), zz+3.4)
  1124.         end
  1125.  
  1126.         when nn=='F2'  then
  1127.         do
  1128.           yw = 3.22
  1129.             if al == 'n' then call aufltief()
  1130.           call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1131.           call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  1132.           call ppm_DrawLine(notex, zz+3.4, (notex+0.4), zz+3.4)
  1133.         end
  1134.  
  1135.         when nn=='E2'  then
  1136.         do
  1137.           yw = 3.32
  1138.             if al == 'n' then call aufltief()
  1139.           call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1140.           call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  1141.           call ppm_DrawLine(notex, zz+3.4, (notex+0.4), zz+3.4)
  1142.         end
  1143.         otherwise notenwert()
  1144.       end
  1145.  
  1146.  
  1147.         /* größe einer Notenbox */
  1148.           notewidht = 0.64
  1149.           noteheight = 0.97
  1150.  
  1151.  
  1152.           boxid = ppm_CreateBox(notex, yw+zz, notewidht, noteheight, 0)
  1153.           call ppm_SetSize(notepkt)
  1154.           call ppm_TextIntoBox(boxid, nw)
  1155.           notex = (notex + xw)
  1156.           if notex >=18.7 then
  1157.               do
  1158.                 notex = 2.5
  1159.                 zz = zz + 4
  1160.               end
  1161.           px = notex - 4
  1162.           py = zz-1
  1163.           if px < 0 then px = 0
  1164.           call ppm_SetPagePosition(px, py+2)
  1165.       end
  1166.    end
  1167. exit
  1168.  
  1169. auflhoch:
  1170. do
  1171.   Pbox = ppm_CreateBox(notex-0.34, yw+zz+0.07, 0.6, 1.2, 0)
  1172.   boxnm = ppm_DocNextBox(Pbox)
  1173.   call ppm_DeleteContents(boxnm)
  1174.   call ppm_ImportGraphic(boxnm, 'Genies:note_pause/naturalsng', Zeichen)
  1175.   return
  1176. end
  1177.  
  1178. aufltief:
  1179. do
  1180.   Pbox = ppm_CreateBox(notex-0.34, yw+zz-0.4, 0.6, 1.2, 0)
  1181.   boxnm = ppm_DocNextBox(Pbox)
  1182.   call ppm_DeleteContents(boxnm)
  1183.   call ppm_ImportGraphic(boxnm, 'Genies:note_pause/naturalsng', Zeichen)
  1184.   return
  1185. end
  1186.  
  1187. break_d:
  1188. break_e:
  1189. break_c:
  1190. halt:
  1191.     call exit_msg("User aborted Genie!")
  1192.  
  1193.  
  1194. exit_msg: procedure
  1195. do
  1196.     parse arg message
  1197.  
  1198.     if message ~= '' then
  1199.     call ppm_Inform(1,message,)
  1200.  
  1201.     call ppm_ClearStatus()
  1202.     call ppm_AutoUpdate(1)
  1203.     exit
  1204. end
  1205.  
  1206.